package com.blog.common.base;
import java.util.Map;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import com.blog.common.constants.Constants;

 
 
 
 

/**
 * 
 * @ClassName: BaseController
 * @author: chb
 * @date: 2018年7月5日 下午9:15:49
 * @作用：返回结果的封装 
 */
@Component
public class BaseController {

	/**
              @component （把普通pojo实例化到spring容器中，相当于配置文件中的 
			  <bean id="" class=""/>）
			  不用每一次都去 应用  new  这样的  
	 */

	// 返回成功 ,data值为 null
	public ResponseReslut resultSuccess() {
		return setResult(Constants.HTTP_RES_CODE_200, Constants.HTTP_RES_CODE_200_VALUE, null);
	}
	// 返回成功 ,data 有值 
	public ResponseReslut resultSuccess(Object data) {
		return setResult(Constants.HTTP_RES_CODE_200, Constants.HTTP_RES_CODE_200_VALUE, data);
	}

	// 返回成功 , 自定义返回内容 
	public ResponseReslut setResultSuccess(String msg) {
		return setResult(Constants.HTTP_RES_CODE_200, msg,null);
	}
	// 返回成功 , 自定义返回内容 
	public ResponseReslut setResultSuccess(String msg,Object data) {
		return setResult(Constants.HTTP_RES_CODE_200, msg,data);
	}
	// 返回成功 , 自定义返回内容 
	public ResponseReslut setResultSuccess2(String msg,Object data) {
		return setResult(0, msg,data);
	}
	// 返回失败
	public ResponseReslut resultError(String msg){
		return setResult(Constants.HTTP_RES_CODE_500,msg, null);
	}

	// 返回失败
	public ResponseReslut resultError(Integer code,String msg){
		return setResult(code,msg, null);
	}

	// 自定义返回结果
	public ResponseReslut setResult(Integer code, String msg, Object data) {
		ResponseReslut responseBase = new ResponseReslut();
		responseBase.setCode(code);
		responseBase.setMsg(msg);
		if (data != null)
			responseBase.setData(data);
		return responseBase;
	}


	public static ModelAndView view(String view) {
		return new ModelAndView(view);
	}

	public static ModelAndView view(String view, Map<String, Object> model) {
		return new ModelAndView(view, model);
	}

	public static ModelAndView redirect(String view) {
		return new ModelAndView("redirect:" + view);
	}
	
	


}
